package com.ruoyi.web.petmall.pethome.controller;

import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.web.petmall.entity.PetInfoEntity;
import com.ruoyi.web.petmall.pethome.service.TradeService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.List;

/**
 * 控制器类，处理前台宠物信息的相关请求。
 */
@RestController
@RequestMapping(value = "/petHome/petInfo")
@Api(tags = "前台——宠物信息")
public class HomePetInfoController extends BaseController {

    /**
     * 交易服务，用于处理宠物信息的业务逻辑。
     */
    @Autowired
    private TradeService tradeService;

    /**
     * 根据条件查询买卖求购宠物信息。
     *
     * @param petInfoEntity 查询条件。
     * @return 包含宠物信息的表格数据。
     */
    @ApiOperation("买卖求购宠物信息条件查询")
    @GetMapping("/getPetInfo")
    public TableDataInfo getPetInfo(PetInfoEntity petInfoEntity) {
        startPage();
        List<PetInfoEntity> list = tradeService.getPetInfo(petInfoEntity);
        return getDataTable(list);
    }

    /**
     * 添加宠物出售信息。
     *
     * @param petInfoEntity 包含出售信息的宠物实体。
     * @return 操作结果。
     */
    @ApiOperation("添加出售信息")
    @PostMapping("/addTradeInfo")
    public AjaxResult addTradeInfo(@RequestBody PetInfoEntity petInfoEntity) {
        return toAjax(tradeService.addTradeInfo(petInfoEntity));
    }

    /**
     * 查询个人宠物信息。
     *
     * @param petInfoEntity 查询条件。
     * @return 包含个人宠物信息的表格数据。
     */
    @ApiOperation("个人宠物信息查询")
    @GetMapping("/getUserPetInfo")
    public TableDataInfo getUserPetInfo(PetInfoEntity petInfoEntity) {
        startPage();
        List<PetInfoEntity> list = tradeService.getUserPetInfo(petInfoEntity);
        return getDataTable(list);
    }
}
